package br.com.news.service;

import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import br.com.news.utils.business.exception.BusinessException;
import br.com.news.utils.business.interfaces.IUsuarioBusiness;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.service.exception.ServiceException;
import br.com.news.utils.service.interfaces.IUsuarioService;

@Named
public class UsuarioService implements IUsuarioService {

	@Inject
	private IUsuarioBusiness usuarioBusiness;

	@Override
	public List<UsuarioBean> teste() {
		try {
			return usuarioBusiness.testeUsuarioList();
		} catch (BusinessException e) {

		}
		return null;
	}

	@Override
	public List<UsuarioBean> findAll() throws ServiceException {
		try {
			return usuarioBusiness.findAll();
		} catch (BusinessException e) {
			throw new ServiceException(e);
		}
	}

	@Override
	public void save(UsuarioBean usuario) throws ServiceException {
		try {
			usuarioBusiness.save(usuario);
		} catch (BusinessException e) {
			try {
				throw new ServiceException(e);
			} catch (ServiceException e1) {
				throw new ServiceException("Erro ao tentar salvar usuario",e);
			}
		}
	}
	
	@Override
	public List<UsuarioBean> findByExample(UsuarioBean usuario) {
		return usuarioBusiness.findByExample(usuario);
	}
	
	@Override
	public List<UsuarioBean> buscaTodosOsUsuariosAtivos() {
		return usuarioBusiness.buscaTodosOsUsuariosAtivos();
	}

	@Override
	public UsuarioBean autenticar(UsuarioBean usuarioBean) {
		return usuarioBusiness.autenticar(usuarioBean);
	}
	
	@Override
	public void update(UsuarioBean usuarioBean) throws ServiceException {
		try {
			usuarioBusiness.update(usuarioBean);
		} catch (BusinessException e) {
			throw new ServiceException(e);
		}
	}
	
}
